1. Field of the Invention
The present invention relates to a data processing system and a method performed by a CPU for inputting data at a prescribed bit width from storage devices, such as flash ROM, in a data processing system.
2. Description of the Prior Art
Conventional data processing systems provided with a CPU include a program ROM for storing control programs used by the CPU to execute prescribed control processes: data ROM for storing data to be referenced during those control processes: RAM that serves as a work area during those control processes for performing input and output of data; I/O interface for executing in hardware data input and output between external devices; and the like.
Each of these storage devices contains storage space that can be accessed by the CPU. Addresses are assigned for the storage spaces of each storage device such that the addresses do not overlap. The CPU can access each of the storage devices by outputting the relevant address data.
However, the storage space contained in individual storage devices is generally smaller than the total address space that can be accessed by the CPU. Therefore, an address decoder is normally positioned between the CPU and the storage devices. The address decoder executes processes to generate the address of each storage device based on address data outputted from the CPU.
Occasionally, the width of the I/O data bus used by the CPU is different from that of the data bus for the storage devices. Therefore, some conventional systems employ a configuration in which a plurality of storage devices are arranged together and made to conform to the I/O data width of the CPU using the address decoder.
For example, a 32-bit CPU has a 32-bit data bus. However, the data buses in the program ROM and data ROM currently have a maximum width of 16 bits. Hence, conventional systems have used the two ROM devices together to form a 32-bit data bus width.
However, this configuration can be wasteful because it necessitates that two ROM devices be always provided, regardless of how small the necessary ROM capacity is. Printing devices, for example, can be mounted with data ROM for storing various user-specific data based on user requests. For a user who only prints on special thick paper, for example, modifiable data is stored in the data ROM to indicate the fixing temperature should be higher than normal. In addition, special font data may be stored in the data ROM for users who print characters of special languages.
The size of this user-specific data can change drastically according to specifications of the user. One user may require about 1 MB of data, while another can get by on about 0.5 MB of data.
When 1 MB of data is required, it is possible to provide two ROM memories of 0.5 MB each. However, for the user that only requires about 0.5 MB of data, it will still be necessary to provide two ROM memories of 0.5 MB, due to the CPU data bus width problem described above. It is very difficult to find flash memory in sizes less than 0.5 MB.
Various methods can be considered to overcome this problem, such as changing the hardware configuration for each user or changing the software configuration so that data input to the CPU is performed at a lesser data bus width. However, changes in the hardware and software configurations can be expensive.